/**
 * @author cmtlyt
 * @version v1.0
 */

package chapter02;

/*
 赋值运算符
*/

public class AssignmentOperator {
  public static void main(String[] args) {
    // = 当等于号两侧数据类型不一样的时候,可以使用自动类型转换或者使用强制类型转换原则进行处理
    // 支持连续的赋值
    int i1 = 10;
    int j1 = 10;
    // 这两句和上面两句是一个意思
    int i2, j2;
    i2 = j2 = 10;
    System.out.printf("%d, %d, %d, %d", i1, j1, i2, j2);

    // ===================================
    int num1 = 10;
    num1 += 2;
    System.out.printf("10 += 2: %d", num1);
    int num2 = 10;
    num2 -= 2;
    System.out.printf("10 -= 2: %d", num2);
    int num3 = 10;
    num3 *= 2;
    System.out.printf("10 *= 2: %d", num3);
    int num4 = 10;
    num4 /= 2;
    System.out.printf("10 /= 2: %d", num4);
    int num5 = 10;
    num5 %= 2;
    System.out.printf("10 %= 2: %d", num5);
    // 这些写法都不会改变变量本身的数据类型
    // 开发中,如果希望变量可以实现+2的操作,有几种方法?(前提: int num = 10;)
    /*
     * 1. num = num + 2;
     * 2. num += 2; (推荐)
     * 3. (num++)++;
     */
    // 开发中,如果希望变量可以实现+1的操作,有几种方法?(前提: int num = 10;)
    /*
     * 1. num = num + 1;
     * 2. num += 1;
     * 3. num++; (推荐)
     */
  }
}
